package xin.marcher.wind.process.config;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

import java.io.InputStream;

/**
 * classpath 流程配置文件解析
 *
 * @author marcher
 */
public class ClassPathXmlProcessParser extends AbstractXmlProcessParser {

    private final String file;

    public ClassPathXmlProcessParser(String file) {
        this.file = file.startsWith("/") ? file : "/" + file;
    }

    @Override
    protected Document getDocument() throws DocumentException {
        InputStream resourceAsStream = getClass().getResourceAsStream(file);
        // 所属的框架，dom4j，专门解析 xml 文件，SAX 是属于 xml 解析的一种模式
        SAXReader saxReader = new SAXReader();
        // 对文件输入流，做一个读取，一点一点的把 xml 内容读取出来
        return saxReader.read(resourceAsStream);
    }
}
